home *** CD-ROM | disk | FTP | other *** search
- /*
- Copyright (c) 2002, Jonathan Feinberg
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are
- met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- * The name of the author may not be used to endorse or promote
- products derived from this software without specific prior written
- permission.
-
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
- IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
- OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
- $Id: MFKSAPreferencePane.m,v 1.2 2002/04/07 15:41:00 jdf Exp $
-
- */
- #import <CoreFoundation/CoreFoundation.h>
- #import "MFKSAPreferencePane.h"
-
- #import "KSAPrefConstants.h"
-
- @implementation MFKSAPreferencePane
-
- - (void)mainViewDidLoad
- {
- NSString *period;
- NSString *chargerAwareness;
-
- CFPreferencesAddSuitePreferencesToApp(kCFPreferencesCurrentApplication, (CFStringRef)suiteID);
-
- period = (NSString *)CFPreferencesCopyAppValue((CFStringRef)MFKSASeconds, (CFStringRef)suiteID);
- [secondsText setStringValue:(period ? period : @"20")];
-
- chargerAwareness = (NSString *)CFPreferencesCopyAppValue((CFStringRef)MFKSAWatchCharger, (CFStringRef)suiteID);
- [allowSleepCheckbox setState:( chargerAwareness ? [chargerAwareness intValue] : YES )];
- }
-
- - (void)updatePrefs
- {
- NSString * chargerAwareness = [NSString stringWithFormat:@"%d", [allowSleepCheckbox state]];
- NSString * period = [secondsText stringValue];
- CFPreferencesSetAppValue((CFStringRef)MFKSAWatchCharger, chargerAwareness, (CFStringRef)suiteID);
- CFPreferencesSetAppValue((CFStringRef)MFKSASeconds, period, (CFStringRef)suiteID);
- CFPreferencesAppSynchronize((CFStringRef)suiteID);
- CFNotificationCenterPostNotification(CFNotificationCenterGetDistributedCenter(),
- (CFStringRef)MFKSAPrefsChangedNotification,
- (CFStringRef)suiteID,
- NULL /* no dictionary */,
- TRUE);
- }
-
- - (IBAction)changeAllowSleep:(id)sender
- {
- [self updatePrefs];
- }
-
- - (IBAction)changeSeconds:(id)sender
- {
- [self updatePrefs];
- }
-
- - (void)willUnselect
- {
- [self updatePrefs];
- [super willUnselect];
- }
-
- @end
-